// 作者:于大明
// 页面职责：只处理生命周期事件

//------------------------------mock数据引入---------------------------
import homeMock from './home_mock.js';

//------------------------------mixins引入---------------------------
import homeMixins from './home_mixins.js';
import homeMixinsApi from './home_mixins_api.js';

//------------------------------组件引入-------------------------------
import homeHead from './10home-head/home-head.vue';
import homeBody from './20home-body/home-body.vue';
import homeFoot from './30home-foot/home-foot.vue';


//--------------------------核心规范-------------------------------------
//1 能不能在页面单行代码实现
//2 能不能不用data methods去实现这个功能(有返回值不用传参数的用compute,有返回值有传参的那么使用filters实现)
//3 以最少的代码实现功能(需要封装除外)
//4 相同代码一定更要封装 区分职责关系 
//5 新增功能时尽量不改之前的文件 以新增组件进行处理


export default {
	// 组件放在data前面
	components: {
		homeHead, // 首页信息头部
		homeBody, // 首页信息内容
		homeFoot, // 首页信息底部
	},
	mixins: [homeMixins, homeMixinsApi],
	// 页面加载事件 页面生命周期 https://uniapp.dcloud.io/tutorial/page.html#%E5%BA%94%E7%94%A8%E9%A6%96%E9%A1%B5
	async onLoad(option) {
		this.$cw.hideAllNonBaseMenuItem();
		const userInfo = this.$globalData.userInfo;
		if (option.userGUID) {
			getApp().globalData.userInfo = {
				id: option.userGUID,
				openid: option.openid,
				wxUserInfoMobilePhone: option.phone
			};
			this.$cw.showLodaing('登陆中...');
			await this.$cw.refreshUserInfo(option.userGUID, this.$globalData);
			if (option.redirect) {
				this.$cw.jumpUrl(option.redirect);
			}
		} else if (!userInfo) {
			this.$nextTick(() => {
				this.$refs.popup.open('center');
			})
			uni.setNavigationBarTitle({
				title: '登陆中...'
			})

			if (!option.redirect && option) {
				let herf = Object.keys(option)
					.map(k => encodeURIComponent(k) + '=' + encodeURIComponent(option[k]))
					.join('&');
				option.redirect= encodeURIComponent(`/pages/10home/home?${herf}`);
			}
			this.$cw.loginWx(option.redirect);
		}
		this.queryObj = option;
		
	},
	// 页面显示事件
	onShow() {

	},
	// 页面卸载事件
	onUnload() {},
	/**
	 * 下拉刷新回调函数
	 */
	onPullDownRefresh() {
		this.getProductLstIn.isPullDown = !this.getProductLstIn.isPullDown;
	},
	/**
	 * 上拉加载更多
	 */
	onReachBottom() {
		// 显示加载中
		this.getProductLstIn.pageIndex++;
	},
	// 页面滚动事件
	onPageScroll(e) {
		this.$cw.GoBackObj.scrollTop = e.scrollTop;
	}
};